package com.qn.utils;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;

import java.util.Map;

/**
 * @since 2020/10/3 8:32   @author 老周  @version 1.00
 * Description
 */
public class MyBeanUtils {
    public static void populate(Object obj, Map<String, String[]> map) {
        try {
            // 由于BeanUtils将字符串"1992-3-3"向user对象的setBithday();方法传递参数有问题,手动向BeanUtils注册一个时间类型转换器
            // 1_创建时间类型的转换器
            DateConverter dt = new DateConverter();
            // 2_设置转换的格式
            dt.setPattern("yyyy-MM-dd");
            // 3_注册转换器
            ConvertUtils.register(dt, java.util.Date.class);

            BeanUtils.populate(obj, map);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }


    public static<T> T  populate(Class<T> clazz, Map<String, String[]> map) {
        try {

            T obj=clazz.newInstance();

            // 由于BeanUtils将字符串"1992-3-3"向user对象的setBithday();方法传递参数有问题,手动向BeanUtils注册一个时间类型转换器
            // 1_创建时间类型的转换器
            DateConverter dt = new DateConverter();
            // 2_设置转换的格式
            dt.setPattern("yyyy-MM-dd");
            // 3_注册转换器
            ConvertUtils.register(dt, java.util.Date.class);

            BeanUtils.populate(obj, map);

            return obj;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
